██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
X Window System
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwbqX Window System (noto in gergo come mwbgX Window, mwbwX11 o semplicemente come mwcaX), in mwcqinformatica, è un mwcggestore grafico molto diffuso, mwcwstandard mwdamwdqde facto per molti sistemi mwdgUnix-like (mwdwLinux e mweaFreeBSD compresi), pubblicato sotto una mweqlicenza di mwegsoftware libero, dal mwew2004 lo sviluppo è curato dalla mwfaX.Org Foundation.
Deriva da un'mwfginterfaccia grafica chiamata mwfwW (W Window System) sviluppata da Brian Red e Paul Ascente presso l'mwgwUniversità di Stanford negli mwhaanni 1980; è stato creato dal mwhqMIT nel mwhg1984. L'ultima versione del protocollo, X11, è stata ultimata nel settembre del mwhw1987. La X.Org Foundation implementa il mwiaprotocollo X versione 11 in mwiqXOrg. Dal giugno mwig2012 è disponibile la versione 7.7.
Contents
• Storia
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Storia
La creazione
Nel mwjw1984 Bob Scheifler con la collaborazione di Jim Gettys modificò il protocollo sincrono W in uno asincrono chiamato X (versione 1). Scheifler e gli altri (pochi) programmatori, lavorarono molto velocemente e con impegno al progetto, infatti la versione 6 fu pubblicata già nel mwkg1985. X fu portato su varie piattaforme, iniziava a diventare interessante e molte persone esterne lo richiedevano. X11 risale al mwkw1987 quando grandi aziende tra le quali mwlaSun Microsystems, mwlqIBM e mwlgHP avevano bisogno di uno standard per le interfacce grafiche, e una volta riuniti nel consorzio X.org, decisero le specifiche di X11.
L'evoluzione di XFree86
Nonostante il tempo passato da allora, il cuore di X11 è praticamente rimasto immutato, l'ultima release con modifica al codice base di X è stata la X11R4, ma il suo unico scopo era solo quello di aumentare la portabilità sulle macchine Sun. Questa mancanza di cambiamenti significativi coincideva con un indebolimento del consorzio X.org, che non era più in grado di gestire il progetto adeguatamente, così giunti a X11R6.6 ci fu l'avvento di mwmgXFree86 (il cui nome è un gioco di parole: mwmwX free eight six -> X three eight six, X386).
XFree86 prometteva di migliorare radicalmente X e divenne in breve tempo un progetto con un gran seguito. I risultati sperati non arrivarono neanche con XFree e, mancato l'interesse e il finanziamento da parte delle vecchie aziende, X all'improvviso dovette contare solo su volontari.
Cosa ancor più grave, le librerie di X (xlibs) erano totalmente inadeguate per usi grafici avanzati, come poteva essere un mwngdesktop environment ed erano un incubo per i programmatori che tentavano di metterci mano; da questa necessità nacquero i "toolkit", ossia delle librerie che, appoggiandosi alle xlib, non solo implementavano funzioni mancanti fornendo strumenti aggiuntivi, ma semplificano la programmazione di applicazioni grafiche per X. Il toolkit più famoso di sempre è probabilmente mwnwMotif. Famose sono anche le librerie mwoaQt alle quali si appoggia mwoqKDE o le GTK (nate da mwogGimp) ampliate poi in mwowGTK+.
Anche se questi toolkit favorivano lo sviluppo di applicazioni grafiche, con la nascita di mwpqKDE e di mwpgGNOME si vide quanto X fosse limitato: era lento e pesante. I membri del core team di XFree86 progettarono a tavolino la versione 4.0, più modulare, più snella, con delle nuove estensioni, e così nel marzo 2000, XFree 4.0 presentava alcune funzioni che gli utenti desktop avevano tanto richiesto, come il supporto dei font con mwpwantialiasing e il supporto alla mwqagrafica 3D.
Ma non era ancora abbastanza: le novità furono poche e gli sviluppatori stessi erano insoddisfatti dal metodo di sviluppo in quanto mwqgbug gravi restavano aperti per mesi e con la release 4.3, uno degli sviluppatori più innovativi appartenenti al core team (Keith Packard) lasciò XFree.
L'utilizzo nelle distribuzioni GNU/Linux
Le aziende rividero tuttavia in XFree il modo per portare Linux sui desktop e un nuovo consorzio ridiede vita alla X.Org Foundation. Nuovi sviluppatori parteciparono al progetto, sia sul ramo ufficiale sia su parti sperimentali della nuova fondazione.
Ma con la release 4.4rc3 la licenza di XFree cambiò rendendosi incompatibile con la mwrgGPL, non poteva più essere incluso nelle distribuzioni mwrwLinux e fu necessario avviare un nuovo progetto. La maggior parte degli sviluppatori, abbandonando XFree in favore di X.org, presentarono la versione X11 6.7 (Xorg 6.7) il 6 aprile del mwsa2004. Basato su XFree4.4rc2, presentava correzioni di bug e nuove caratteristiche, come nuova gestione di mwsqIPv6, la revisione dei moduli per la gestione dei font, una nuova versione di Xrender e di Xcursor.
Nel settembre 2004 è stato pubblicato Xorg 6.8, che ha portato nuove caratteristiche interessanti come le finestre traslucide, animazioni, decorazioni delle finestre (per esempio, le ombre) e il supporto per le applicazioni accessibili. Pochi giorni dopo è stata resa pubblica la versione 6.8.1 che correggeva una falla di sicurezza.
Il 21 dicembre 2005, in pieno rispetto della roadmap annunciata ufficialmente, è stato pubblicato Xorg X11R7.0, la prima grande pubblicazione del sistema X Window System dopo 10 anni di stagnazione e sviluppo discontinuo. Parallelamente, è stato pubblicato X11R6.9, contenente lo stesso codice della 7.0, ma in un unico blocco di circa 16 milioni di righe di codice. Proprio questa è una delle maggiori innovazioni rispetto al passato: Xorg 7.0 ha portato la modularizzazione del codice del server grafico, ponendo le basi per una maggior rapidità di sviluppo. Fra le numerose note innovative, oltre ad aggiornati driver per hardware video, troviamo mwtaEXA, la nuova architettura di accelerazione.
Caratteristiche generali
Fornisce l'ambiente e i componenti di base per le mwtwinterfacce grafiche ovvero il disegno, lo spostamento delle finestre sullo schermo e l'interazione con le mwuaperiferiche di mwuqinput quali mwugmouse e mwuwtastiera. X non gestisce invece l'interfaccia grafica utente cioè lo stile grafico delle mwvaapplicazioni che vengono gestite mwvqinvece dall'mwvgambiente desktop scelto dall'utente e in uso sul mwvwcomputer.
Un'altra caratteristica molto importante è la trasparenza di rete: la macchina dove girano i mwwqprogrammi (mwwgclient) non deve essere necessariamente la macchina locale (mwwwdisplay server). I termini mwxamwxqserver e mwxgmwxwclient vengono spesso confusi: per X il server è il display locale dell'utente, non una macchina remota. Questo permette anche di visualizzare sullo stesso display applicazioni che vengono eseguite su diversi mwyahost, oppure che su un host vengano eseguite applicazioni la cui interfaccia grafica finisce su diversi display.
X è ormai usato secondariamente anche da mwygsistemi operativi che non lo supportano nativamente (es. mwywmacOS, che usa nativamente mwzaQuartz), per permettere il funzionamento del software progettato per questo sistema grafico, come la suite da ufficio mwzqOpenOffice.org e mwzgGIMP.
Il modello client/server
Utilizza un mwbgmodello client/server: in altre parole, il server X comunica con gli altri programmi (client). Il server accetta richieste per output grafici (finestre) e input dall'utente (tramite tastiera, mouse o dal mwbwtouch screen). Il server X può essere:
• un componente mwdqhardware dedicato (i cosiddetti X terminal: calcolatori dotati solo dell'hardware necessario ad eseguire il server X, pensati per visualizzare applicazioni eseguite su appositi server applicativi);
• un'applicazione che mostra dati su una finestra di un altro sistema grafico.
La denominazione mweqclient/server spesso confonde i nuovi utilizzatori di X perché i termini sembrano invertiti: sul terminale dell'utente è in esecuzione il "server" che viene utilizzato dai programmi applicativi (client). X fornisce un servizio di visualizzazione ai programmi, in quest'ottica agisce da server, mentre il programma applicativo (che può anche essere remoto tramite mwegconnessione remota) usa i servizi, così agisce come un client.
Il mwfaprotocollo di comunicazione tra server e client opera in modo trasparente rispetto alla rete: entrambi possono risiedere sulla stessa macchina o su altre, anche con mwfqarchitetture e mwfgsistemi operativi differenti; il server ed il client possono anche comunicare in modo mwfwsicuro attraverso la rete sfruttando un mwgatunnel mwgqcifrato (spesso viene utilizzato mwggSSH).
L'interfaccia utente
Il sistema di X è stato progettato appositamente per non fornire alcun supporto predeterminato per gli elementi dell'interfaccia utente (quali pulsanti, menù, barre del titolo). Tale infrastruttura viene quindi creata e fornita dagli ambienti desktop. Per tale motivo le interfacce di X sono variate considerevolmente nel tempo e sono differenti passando da un desktop manager all'altro.
Il controllo della visualizzazione ed il posizionamento delle finestre è compito di un particolare applicativo software, detto mwiwwindow manager, indipendente da X. Esempi di tale software sono mwjaKWin per mwjqKDE o mwjgMetacity per mwjwGNOME. Tale impostazione ha consentito ad esempio di utilizzare un window manager con effetti 3D avanzati apportando soltanto modifiche marginali al server X.
È responsabile di fornire l'interfaccia verso la tastiera, il mouse e altri dispositivi di input. Per tale motivo alcune scorciatoie da tastiera sono nativamente associate al server X. Control-Alt-Backspace termina il server X attualmente in esecuzione mentre Control-Alt insieme ad un tasto funzione cambia la console virtuale utilizzata.
Cronologia delle versioni
| Versione | Data di pubblicazione | Commenti sulla versione |
|---|---|---|
| X1 | giugno 1984 | Prima release dove si usa il nome X ; cambiamenti profondi che lo distinguono da W . |
| X6 | gennaio 1985 | Prima versione data sotto licenza ad una manciata di aziende. |
| X9 | settembre 1985 | Supporto per i colori e prima versione sotto licenza MIT . |
| X10 | novembre 1985 | Supporto per IBM RT/PC, AT (sotto DOS) e altri |
| X10R2 | gennaio 1986 | |
| X10R3 | febbraio 1986 | Prima release al di fuori del MIT. Supporto per i primi standard per le finestre grafiche. |
| X10R4 | dicembre 1986 | Ultima versione di X10. |
| X11 | 15 settembre 1987 | Prima release della versione che implementa l'ultimo protocollo. |
| X11R2 | febbraio 1988 | Prima versione di X Consortium . [ 1 ] |
| X11R3 | ottobre 1988 | XDM |
| X11R4 | 22 dicembre 1989 | XDMCP e twm sono stati inseriti come gestori standard delle finestre; miglioramenti alle applicazioni; nuovi font. |
| X11R5 | 5 settembre 1991 | PEX, Xcms (gestione dei colori), server font, supporto a X386 |
| X11R6 | 16 maggio 1994 | ICCCM v2.0; Inter-Client Exchange; gestione della sessione X; estensione X Synchronization ; estensione X Image ; estensione XTEST ; X Input; X Big Requests; XC-MISC; cambiamenti di XFree86. |
| X11R6.1 | 14 marzo 1996 | Estensione per il doppio buffer; estensione per il supporto della tastiera; estensione X Record . |
| X11R6.2 X11R6.3 (Broadway) | 23 dicembre 1996 | Funzionalità web. Ultima versione dell' X Consortium . |
| X11R6.4 | 31 marzo 1998 | Supporto per Xinerama. [ 2 ] |
| X11R6.5 | | Versione X.org interna, nessuna pubblicazione agli utenti finali. |
| X11R6.5.1 | 20 agosto 2000 | |
| X11R6.6 | 4 aprile 2001 | Correzioni di alcuni bug, modifiche a XFree86. |
| X11R6.7.0 | 6 aprile 2004 | Prima versione della X.Org Foundation , basato su XFree86 4.4rc2. Rimosso XIE, PEX e libXML2 . [ 3 ] |
| X11R6.8.0 | 8 settembre 2004 | Traslucenza delle finestre; XDamage; Distributed Multihead X; XFixes; Composite; XEvIE. |
| X11R6.8.1 | 17 settembre 2004 | Correzione nella falla di sicurezza nella libreria XPM . |
| X11R6.8.2 | 10 febbraio 2005 | Corretti bug, driver aggiornati. |
| X11R6.9 X11R7.0 | 21 dicembre 2005 | Supporto per l'accelerazione EXA ; la maggior parte del codice sorgente è stato spezzettato per la versione modulare 7.0. |
| X11R7.1 | 22 maggio 2006 | AIGLX , modifiche invasive non incluse in 6.9/7.0. [ 4 ] |
| X11R7.2 | 15 febbraio 2007 | Eliminazione di Low Bandwidth X (LBX) e del vecchio driver della tastiera, X-ACE, XCB, miglioramenti all'autoconfigurazione, pulizia del codice. [ 5 ] |
| X11R7.3 | 6 settembre 2007 | XServer 1.4 , Supporto per l'hotplug dei dispositivi di input, RandR 1.2, supporto per UnixWare. [ 6 ] |
| X11R7.4 | 23 settembre 2008 | XServer 1.5.1 , Startup e shutdown più veloci. [ 7 ] |
| X11R7.5 | 26 ottobre 2009 | XServer 1.7.1 , X Input 2.0 e Multi-Pointer X, pulizia del codice XKB (X keyboard extension, Gestione avanzata del layout della tastiera), VGA Arbitration, miglioramenti all'accelerazione EXA , XDMX (Distributed Multihead X, un proxy di X server per più X server di back-end). [ 7 ] |
| X11R7.6 | 20 dicembre 2010 | X Server 1.9, richiesto XCB |
| X11R7.7 | 6 giugno 2012 | Xorg server 1.12; Sync extension 3.1: aggiunge il supporto oggetto Fence; Xi 2.2 supporta il multitocco; XFixes 5.0: migliora la selezione ( Legge di Fitts ) |
| X11R7.8 | TBD | RandR extension 1.4, X Resource extension 1.2, XInput extension 2.3 |
Note
cite-note-11. mwawm(mwawqmwawuEN) mwawymwawcThe X Window System: History and Architecture, su mwawglinuxdocs.org.
cite-note-22. mwaww(mwaw0mwaw4EN) mwaw8mwaxaThe Open Group Announces Internet-Ready X Window System X11R6.4, su mwaxewww5.opengroup.org mwaxi(archiviato dall'mwaxmurl originale il 23 novembre 2012).
cite-note-33. mwaxc(mwaxgmwaxkEN) mwaxomwaxsX.Org Foundation releases X Window System X11R6.7, su mwaxwlwn.net.
cite-note-44. mwaya(mwayemwayiEN) mwaymmwayqProposed Changes for X11R7.1, su mwayuwiki.freedesktop.org.
cite-note-55. mwayk(mwayomwaysEN) mwaywmway0Releases/7.2, su mway4wiki.freedesktop.org.
cite-note-66. mwazi(mwazmmwazqEN) mwazumwazyReleases/7.3, su mwazcwiki.freedesktop.org.
cite-note-releases-7-4-77. mwaz0(mwaz4mwaz8EN) mwaaamwaaeReleases/7.4, su mwaaiwiki.freedesktop.org.
Bibliografia
• mwaay(EN) Robert W. Scheifler e Jim Gettys, The X Window System, in ACM Transactions on Graphics, vol. 5, n. 2, aprile 1986, pp. 79-109, DOI:10.1145/22949.24053. URL consultato il 6 giugno 2024.
• mwaag(EN) Robert W. Scheifler e James Gettys, X Window System: The Complete Reference to Xlib, X protocol, ICCCM, XLFD, 3ª ed., Digital Press, 1992, ISBN 978-1-55558-088-9.
Voci correlate
Altri progetti
Altri progetti
• Wikimedia Commons
• Wikimedia Commons contiene immagini o altri file su X Window System
Collegamenti esterni
• (EN) Sito ufficiale, su x.org.
• citerefopen-library(EN) Opere riguardanti X Window System (Computer system), su Open Library, Internet Archive.
• Repository sorgenti di X Window System, su gitlab.freedesktop.org.